今天這篇文章是一個入門介紹文,跟大家介紹一下 Secret 這個物件。與 ConfigMap 一樣, Secret 也是 Kubernetes 內建的一個特別儲存單元,用法完全與 ConfigMap 類似,但是最大的差異在於其本身的內容必須要透過 base64 進行編碼以及該物件本身會放在 tmpfs 而非真正的檔案系統下。
但是也就是這個編碼以及 Secret 這個名詞很容易讓人搞混,以為把所有的東西都放到 Secret 就安全無誤,實際使用上才會發現這並沒有很安全。
因此本篇介紹完會探討 Secret 的使用方式,以及實務上可以怎麼使用
1. 透過 yaml 這種 declarative 的方式來描述 secret 的內容,這種格式下也有多種用法
a. [removed] tls, docker-registry。
如果你有使用過 imagePullSecrets 這種類型來存取非公開的 contaienr registry 的話,就會需要使用 docker-registry 這種類型來存放相關的存取資訊。
由於上面提到的 base64 都是編碼,並非加密,因此如果有任何加密的需求,請一定要考慮使用不同的解決方案,譬如 Vault, Sealed Secrets, Helm Secrets 等不同的解決方案,千萬不要把 secrets 的內容直接編碼就放到公開的 git repo 上,這樣是完全沒有安全性可言的。
如果對於 secrets 這個物件還不太熟的,可以參考這篇文章看看各種基本用法
https://medium.com/better-programming/how-to-use-kubernetes-secrets-for-storing-sensitive-config-data-f3c5e7d11c15